package com.yanqu.road.entity.player;

import com.yanqu.road.entity.DataObject;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

public class UserVehicleSoul extends DataObject {

	private long userId;

	//对应玩家的魂id
	private int soulId;

	//配置信息
	private int configId;

	//装备在什么门客身上
	private String vehicleId;

	private long equipTime;

	//安装的偏移量
	private int equipPos;

	//合成后会消失
	private boolean isDelete;

	private boolean isLock;

	//是不是一键合成中的零时中间合成物
	private boolean isTemp;


	//策划配置的顺序的职业
	private List<Integer> occList = new ArrayList<>();

	//副词条信息 012345个位置（6个），0位置类型 (1是加资质) 1位置职业 2位置加多少资质 3一共洗了多少次了 4洗出来的临时职业 5洗出来的临时资质
	private Map<Integer,List<Integer>> entryMap = new ConcurrentHashMap<>();

	public long getUserId() {
		return userId;
	}

	public void setUserId(long userId) {
		if(userId != this.userId){
			this.userId = userId;
			setUpdateOption();
		}
	}

	public int getSoulId() {
		return soulId;
	}

	public void setSoulId(int soulId) {
		if(soulId != this.soulId){
			this.soulId = soulId;
			setUpdateOption();
		}
	}

	public int getConfigId() {
		return configId;
	}

	public void setConfigId(int configId) {
		if(configId != this.configId){
			this.configId = configId;
			setUpdateOption();
		}
	}

	public List<Integer> getOccList() {
		return occList;
	}

	public void setOccList(List<Integer> occList) {
		this.occList = occList;
		setUpdateOption();
	}

	public Map<Integer, List<Integer>> getEntryMap() {
		return entryMap;
	}

	public void setEntryMap(Map<Integer, List<Integer>> entryMap) {
		this.entryMap = entryMap;
		setUpdateOption();
	}


	public String getVehicleId() {
		return vehicleId;
	}

	public void setVehicleId(String vehicleId) {
		if(!vehicleId.equals(this.vehicleId)){
			this.vehicleId = vehicleId;
			setUpdateOption();
		}
	}

	public long getEquipTime() {
        return equipTime;
    }

    public void setEquipTime(long equipTime) {
        if(equipTime != this.equipTime){
            this.equipTime = equipTime;
            setUpdateOption();
        }
    }

	public int getEquipPos() {
		return equipPos;
	}

	public void setEquipPos(int equipPos) {
		if(equipPos != this.equipPos){
			this.equipPos = equipPos;
			setUpdateOption();
		}
	}

	public boolean isDelete() {
		return isDelete;
	}

	public void setDelete(boolean delete) {
		if(delete != this.isDelete){
			isDelete = delete;
			setUpdateOption();
		}
	}

	public boolean isLock() {
		return isLock;
	}

	public void setLock(boolean lock) {
		if(lock != this.isLock){
			isLock = lock;
			setUpdateOption();
		}
	}

	public boolean isTemp() {
		return isTemp;
	}

	public void setTemp(boolean temp) {
		isTemp = temp;
	}
}
